/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package agriculturaguillermo;

import Clientes.guiPrincipalClientes;
import Productos.IListar;
import TipoCambio.guiTipoCambio;
import Usuarios.guiPrincipalUsuarios;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 *
 * @author alrojas
 */
public class sisagro extends JFrame{

    private JButton cajaBut;
    private JButton proveedoresBut;
    private JButton usuariosBut;
    private JButton clientesBut;
    private JButton productosBut;
    private JButton reportesBut;
    private JButton ventasBut;
    private JButton creditosBut;
    private JButton tipoCambioBut;
    private JButton salirBut;
    
    private boolean cantidad;
    
    private guiAutenticar padre;
    private boolean administrador;
    
    
    private sisagro identidad = this;
    
    public sisagro(guiAutenticar padre, boolean flag) throws HeadlessException {
        
        setLayout(new GridLayout(3,3));
        identidad.setDefaultCloseOperation(EXIT_ON_CLOSE);
        administrador=flag;
        this.padre=padre;
        this.setResizable(false);
        setTitle("FULL AGRÍCOLA v1.0");
        
        inicializarComponentes();
        inicializarListeners();
        
        identidad.pack();
        identidad.setLocationRelativeTo(null);

        identidad.setVisible(true);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }


    
    public void inicializarComponentes(){
        
        cantidad = false;
                
        cajaBut = new JButton("    Caja    ", new ImageIcon("figuras/cashregister32.png"));
        cajaBut.setHorizontalTextPosition(SwingConstants.CENTER);
        cajaBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        cajaBut.setVerticalAlignment(SwingConstants.CENTER); 
        
        usuariosBut = new JButton("Usuarios(U)", new ImageIcon("figuras/users104.png"));
        usuariosBut.setHorizontalTextPosition(SwingConstants.CENTER);
        usuariosBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        usuariosBut.setVerticalAlignment(SwingConstants.CENTER);
        
        clientesBut = new JButton("Clientes(L)", new ImageIcon("figuras/clients104.png"));
        clientesBut.setHorizontalTextPosition(SwingConstants.CENTER);
        clientesBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        clientesBut.setVerticalAlignment(SwingConstants.CENTER);
        
        proveedoresBut = new JButton("Proveedores(R)", new ImageIcon("figuras/suppliers104.png"));
        proveedoresBut.setHorizontalTextPosition(SwingConstants.CENTER);
        proveedoresBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        proveedoresBut.setVerticalAlignment(SwingConstants.CENTER);
        
        productosBut = new JButton(" Productos(P) ", new ImageIcon("figuras/products104.png"));
        productosBut.setHorizontalTextPosition(SwingConstants.CENTER);
        productosBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        productosBut.setVerticalAlignment(SwingConstants.CENTER); 
             
        reportesBut = new JButton("Reportes", new ImageIcon("figuras/reports104.png"));
        reportesBut.setHorizontalTextPosition(SwingConstants.CENTER);
        reportesBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        reportesBut.setVerticalAlignment(SwingConstants.CENTER); 

        ventasBut = new JButton("   Ventas(V)   ", new ImageIcon("figuras/shopping104.png"));
        ventasBut.setHorizontalTextPosition(SwingConstants.CENTER);
        ventasBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        ventasBut.setVerticalAlignment(SwingConstants.CENTER);      
        
        creditosBut = new JButton("   Creditos(T)   ", new ImageIcon("figuras/credits104.png"));
        creditosBut.setHorizontalTextPosition(SwingConstants.CENTER);
        creditosBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        creditosBut.setVerticalAlignment(SwingConstants.CENTER);  
        
        tipoCambioBut = new JButton("Tipo de Cambio(C)", new ImageIcon("figuras/dollar104.png"));
        tipoCambioBut.setHorizontalTextPosition(SwingConstants.CENTER);
        tipoCambioBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        tipoCambioBut.setVerticalAlignment(SwingConstants.CENTER);
        
        salirBut = new JButton("  Salir(ESC)  ", new ImageIcon("figuras/exit104.png"));
        salirBut.setHorizontalTextPosition(SwingConstants.CENTER);
        salirBut.setVerticalTextPosition(SwingConstants.BOTTOM) ;
        salirBut.setVerticalAlignment(SwingConstants.CENTER);
      
        /*
        barraTBar.add(cajaBut);

        barraTBar.add(usuariosBut);
        barraTBar.add(clientesBut);
        barraTBar.add(proveedoresBut);
        barraTBar.add(productosBut);
        barraTBar.add(ventasBut);
        barraTBar.add(creditosBut);
        barraTBar.add(reportesBut);
        barraTBar.add(new JPanel());
        barraTBar.add(cantidadBut);
        barraTBar.add(salirBut);    
        
        getContentPane().add(barraTBar,BorderLayout.NORTH);
        setUndecorated(true);*/
        
        //add(cajaBut);
        add(usuariosBut);
        add(clientesBut);
        add(proveedoresBut);
        add(productosBut);
        add(ventasBut);
        add(creditosBut);
        add(reportesBut);
        add(tipoCambioBut);
        //add(new JPanel());
        add(salirBut);
     

    }
    
  
    
    public void inicializarListeners(){
        
        /*PARA EL BOTON DE PRODUCTOS*/
            
        Action actProductos = new AbstractAction() {    
      
            public void actionPerformed(ActionEvent e){
                productosBut.doClick();
            }
         };
         
         productosBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                IListar observados = new IListar();
                
                new Productos.IPrincipal(identidad);
                   
                boolean hayObservados = observados.hayObservados();
                
                if(hayObservados){
                    observados.mostrar();
                }
             }
        });
        
         productosBut.getInputMap(productosBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("P"),"accion");
         productosBut.getActionMap().put("accion", actProductos);
        
         /*PARA EL BOTON DE USUARIOS*/
         
         Action actUsuarios = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {usuariosBut.doClick();}
          };
         
         usuariosBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(administrador==true){
                    guiPrincipalUsuarios.obtenerInstancia(identidad);
                } 
                else
                    JOptionPane.showMessageDialog(null, "Ud. No es Usuario Administrador ",
                        "Error de Falta de Privilegios",
                            JOptionPane.ERROR_MESSAGE);
             }
        });
        
         usuariosBut.getInputMap(usuariosBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("U"),"accion");
         usuariosBut.getActionMap().put("accion", actUsuarios);
         
        
        /*PARA EL BOTON DE CLIENTES*/
        
         
         Action actClientes = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {clientesBut.doClick();}
          };
         
         clientesBut.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                guiPrincipalClientes.obtenerInstancia(identidad);   
             }
        });
        
         clientesBut.getInputMap(clientesBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("L"),"accion");
         clientesBut.getActionMap().put("accion", actClientes);
         
        
        /*PARA EL BOTON DE PROVEEDORES*/
        
         
        Action actProveedores = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {proveedoresBut.doClick();}
          };
         
         proveedoresBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new Proveedores.IPrincipal(null,false);   
             }
        });
        
         proveedoresBut.getInputMap(proveedoresBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("R"),"accion");
         proveedoresBut.getActionMap().put("accion", actProveedores);
         
        
         /*PARA EL BOTON DE VENTAS*/
         
         Action actVentas = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {ventasBut.doClick();}
          };
         
         ventasBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new Ventas.IPrincipal(); 
             }
        });
        
         ventasBut.getInputMap(ventasBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("V"),"accion");
         ventasBut.getActionMap().put("accion", actVentas);
         
         /*PARA EL BOTON DE CREDITOS*/
         
         Action actCredito = new AbstractAction() {    
            public void actionPerformed(ActionEvent e) {
                creditosBut.doClick();
            }
         };
         
         creditosBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new Creditos.IPrincipal(null); 
             }
        });
        
         creditosBut.getInputMap(creditosBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("T"),"accion");
         creditosBut.getActionMap().put("accion", actCredito);
         
         
         /*PARA EL BOTON DE TIPO DE CAMBIO*/
         
         Action actTipoCambio = new AbstractAction() {    
            public void actionPerformed(ActionEvent e) {
                tipoCambioBut.doClick();
            }
         };
         
         tipoCambioBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                guiTipoCambio.obtenerInstancia(identidad);
             }
        });
        
         tipoCambioBut.getInputMap(tipoCambioBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("C"),"accion");
         tipoCambioBut.getActionMap().put("accion", actTipoCambio);
         
              Timer timer = new Timer (1000, new ActionListener ()
        {
            public void actionPerformed(ActionEvent e)
            {
                if(cantidad){
                    tipoCambioBut.setForeground(Color.black);

                }else{     
                    tipoCambioBut.setForeground(Color.red);

                }    
                cantidad = !cantidad;
            }
        });
        timer.start();
         
        
        /*PARA EL BOTON DE SALIR*/
        
         
         Action actSalir = new AbstractAction() {    
      
         public void actionPerformed(ActionEvent e) {salirBut.doClick();}
          };
         
         salirBut.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {System.exit(0);}
        });
        
         salirBut.getInputMap(salirBut.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"),"accion");
         salirBut.getActionMap().put("accion", actSalir);
        
   
        
    }
          
}


